#ifndef GEOMETRY_H
#define GEOMETRY_H
#include "global_object.h"
#include "DeviceObject.h"
#include "IntersectRequest.cu"
#include "IntersectResult.cu"

/**
 * Geometry is an abstract superclass for all intersectable objects.
 */
class Geometry : public DeviceObject
{
public:
	inline __host__ __device__  Geometry(){
		this->size = sizeof(Geometry);
	}
	inline virtual __host__ __device__  ~Geometry(){}
	inline virtual __device__ IntersectResult intersect(IntersectRequest& ir) = 0;
	
};

#endif